package org.dromara.wms.domain.bo;

import org.dromara.wms.domain.WmsOrderType;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 仓储作业类别表业务对象 wms_order_type
 *
 * @author wenrui
 * @date 2024-03-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = WmsOrderType.class, reverseConvertGenerate = false)
public class WmsOrderTypeBo extends BaseEntity {

  /**
   * 作业编号
   */
  @NotNull(message = "作业编号不能为空", groups = {EditGroup.class})
  private Long typeId;

  /**
   * 名称
   */
  @NotBlank(message = "名称不能为空", groups = {AddGroup.class, EditGroup.class})
  private String name;

  /**
   * 展示页面
   */
  @NotBlank(message = "展示页面不能为空", groups = {AddGroup.class, EditGroup.class})
  private String page;

  /**
   * 退回单据类别
   */
  private Long returnType;

  /**
   * 作业类型in：入库，out：出库，nothing：不操作库存
   */
  @NotBlank(message = "作业类型in：入库，out：出库，nothing：不操作库存不能为空", groups = {AddGroup.class, EditGroup.class})
  private String wmsType;

  /**
   * 财务类型in：入库，out：出库，nothing：不操作库存
   */
  @NotBlank(message = "财务类型in：入库，out：出库，nothing：不操作库存不能为空", groups = {AddGroup.class, EditGroup.class})
  private String fmsType;

  /**
   * 财务记账科目
   */
  private String classificationCode;

  /**
   * 状态
   */
  @NotBlank(message = "状态不能为空", groups = {AddGroup.class, EditGroup.class})
  private String status;

  /**
   * 审批流程
   */
  private Long workflowId;

  /**
   * 订单完成后创建其它订单，例如采购询价完成后，可能需要继续创建一个采购入库单。内部调拨出库单完成后，可能要生成一个内部调拨入库单。
   */
  private Long nextCreateType;


}
